home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 142 / Gekkan Dennou Club - 2000.3 Vol. 142 (Japan).7z / Gekkan Dennou Club - 2000.3 Vol. 142 (Japan) (Track 1).bin / tools / s_tool / env.c < prev    next >
Text File  |  1999-06-08  |  6KB  |  293 lines

  1. #include    "JX250.H"
  2. #include    <sys\iocs.h>
  3. #include    <sys\dos.h>
  4. #include    <sys\scsi.h>
  5. #include    <stdio.h>
  6. #include    <stdlib.h>
  7.  
  8. //---- 上の群
  9. static    UNchar    b1[9*7]={
  10.         "1122   "
  11.         "3344   "
  12.         "5566   "
  13.         "7788   "
  14.         "AABB   "
  15.         "CCDD   "
  16.         "       "
  17.         "     00"
  18.         "99ab 00"
  19. };
  20.  
  21. extern    UNchar    msp[17];
  22.  
  23. static    int    sdid;
  24.  
  25. /*******************************************
  26.     環境
  27. *******************************************/
  28. void    EnvMode()
  29. {
  30. int    i,ssp,a,x,y;
  31. UNchar    *M;
  32. MAP=&MapAdds[64*32];
  33. //----- 画面制作
  34. ssp=_iocs_b_super(0);
  35. for(y=0;y<11;y++){
  36.     a=TADDS(16,y);
  37.     M=&MAP[16+(y)*32];
  38.     for(x=16;x<32;x++,a+=32)
  39.         GGSP16_64_S(a,*M++);
  40. }
  41. if ( ssp>=0 )
  42.     _iocs_b_super(ssp);
  43. //------
  44. p_12K(17*16,1*16+3,"アスペクト比");
  45. p_12K(17*16,2*16+3,"プリスキャン画像");
  46. p_12K(17*16,3*16+3,"スキャン画像");
  47. p_12K(17*16,4*16+3,"jpeged");
  48. p_12K(17*16,5*16+3,"減色方法");
  49. p_12K(17*16,6*16+3,"記録範囲変更");
  50. p_12K(17*16,9*16+3,"スキャナ SCSI-ID");
  51.  
  52. //------
  53. Env_AllDraw();
  54. _iocs_ms_limit(16*16+2,0+2,511-2,11*16-1-2);
  55. //------
  56. Env_move();
  57. //---- 終わり (画面を戻す)
  58. _iocs_ms_limit(0,0,511,511);
  59. MAP=MapAdds;
  60. ssp=_iocs_b_super(0);
  61. for(y=0;y<11;y++){
  62.     a=TADDS(16,y);
  63.     M=&MapAdds[16+(y)*32];
  64.     for(x=16;x<32;x++,a+=32)
  65.         GGSP16_64_S(a,*M++);
  66. }
  67. if ( ssp>=0 )
  68.     _iocs_b_super(ssp);
  69. //--
  70. p_12K(17*16,1*16+3,"原点X");
  71. p_12K(22*16,1*16+3,"原点Y");
  72. p_12K(17*16,3*16+3,"幅");
  73. p_12K(22*16,3*16+3,"高さ");
  74. p_12K(20*16,14*16+3,"濃度補正");
  75. p_12K(20*16,16*16+3,"明度補正");
  76. p_12K(20*16,20*16+3,"γ補正");
  77. p_12K(20*16,25*16+3,"しきい値");
  78. p_12K(20*16,29*16+3,"ドロップアウトカラー");
  79. //- 取り込み座標
  80. i=ScanMode;
  81. ScanMode=-1;
  82. ScanSetMode(i);
  83. //- プリ座標
  84. PosSetDraw(PreX1,PreY1,PreX2,PreY2,PreUnit);
  85. //--
  86. return;
  87. }
  88. /************************************************
  89.     環境ループ
  90. ***********************************************/
  91. void    Env_move()
  92. {
  93. int    i,r,f;
  94. int    x,y,xx,yy,xo,yo,b;
  95. for(;;){
  96.     _dos_keysns();
  97.     _dos_change_pr();
  98.     xo=-1;
  99.     yo=-1;
  100.     do {
  101.         yy=( i=_ms_curgt_() )&0xFFFF;
  102.         xx=i>>16;
  103.         if ( xo!=xx || yo!=yy ){
  104.             f=fream_mousepos(xx,yy);
  105.             MsPat(msp[f+1]);
  106.             xo=xx;
  107.             yo=yy;
  108.         }
  109.         if ( _iocs_bitsns(3)&bit(7) ){
  110.             AspMode^=1;
  111.             Env_AllDraw();
  112.             while( _iocs_bitsns(3)&bit(7) );
  113.         }
  114.     } while( MS_LSW()==0 && (b=MS_RSW())==0 );
  115.     if ( b!=0 ) return;
  116.     x=xx/16;
  117.     y=yy/16;
  118.             //printf("%2d,%2d:%2d %02X   \r",x,y,f);
  119.     r=0;
  120.     if ( x>=22 && x<29 && y>=1 && y<10 ){
  121.         //--- 上のボックス
  122.         i=b1[(x-22)+(y-1)*7];
  123.         if ( i==' ' )
  124.             continue;
  125.         //printf("\t\t<%02X>\r",i);
  126.         r=Env_click_botton1( i,xx,yy );
  127.     }
  128.     if ( r==99 )
  129.         return;
  130.     while( MS_LSW()!=0 || MS_RSW()!=0 ){
  131.         yy=( i=_ms_curgt_() )&0xFFFF;
  132.         xx=i>>16;
  133.         if ( xo!=xx || yo!=yy ){
  134.             f=fream_mousepos(xx,yy);
  135.             MsPat(msp[f+1]);
  136.             xo=xx;
  137.             yo=yy;
  138.         }
  139.     }
  140. }
  141. return;
  142. }
  143. /************************************************************
  144.     上 ボタンチェック
  145. [out] r= 0; 正常終了
  146.      1; キャンセル終了
  147.     99; 終了
  148. *************************************************************/
  149. int    Env_click_botton1( ty,xx,yy )
  150. int    ty,xx,yy;
  151. {
  152. int    i,j,r;
  153. void    ecb1_sub1();
  154. r=0;
  155. switch( ty ){
  156. case('1'):
  157.     AspMode=0;        // 「画像」の 0;(2:3) 1;(1:1)
  158.     break;
  159. case('2'):
  160.     AspMode=1;        // 「画像」の 0;(2:3) 1;(1:1)
  161.     break;
  162. case('3'):
  163.     PreViewS=0;        // 0;画質。1;速度
  164.     break;
  165. case('4'):
  166.     PreViewS=1;        // 0;画質。1;速度
  167.     break;
  168. case('5'):
  169.     ScanSpeed=0;        // 0;遅い。1;速い
  170.     break;
  171. case('6'):
  172.     ScanSpeed=1;        // 0;遅い。1;速い
  173.     break;
  174. case('7'):
  175.     JpegedUseMode=0;    // 0;64k の時使用する 1;使用しない
  176.     break;
  177. case('8'):
  178.     JpegedUseMode=1;    // 0;64k の時使用する 1;使用しない
  179.     break;
  180. case('A'):
  181.     C64halfMode=0;        // 0;中間処理あり 1;なし
  182.     break;
  183. case('B'):
  184.     C64halfMode=1;        // 0;中間処理あり 1;なし
  185.     break;
  186. case('C'):
  187.     SaveFrmMode=0;        // 0;スキャンサイズに変更
  188.     break;
  189. case('D'):
  190.     SaveFrmMode=1;        // 0;スキャンサイズに変更
  191.     break;
  192.  
  193. case('0'):
  194.     if ( sxbotton(27*16+1,8*16+1,27*16+32-2,8*16+32-2,1)==0 ){
  195.         r=99;
  196.         SCSI_ID=AutoSreachJX(SCSI_ID,-1);
  197.         Env_AllDraw();
  198.     }
  199.     return(r);
  200. case('a'):
  201. case('b'):
  202.     i=(TWOSCHK()==-2)?15:7;
  203.     sdid=SCSI_ID;
  204.     j=SCSI_ID;
  205.     _iocs_ms_limit(0,0,511,511);
  206.     r=kazu_move( ((ty=='a')?xx:xx-16)&0xFFF0,yy&0xFFF0,0,SCSI_ID,0,i,ecb1_sub1);
  207.     _iocs_ms_limit(16*16+2,0+2,511-2,11*16-1-2);
  208.     return(r);
  209. }
  210. Env_AllDraw();
  211. return(r);
  212. }
  213. /*+++++++++++++++++++++++++++++++*/
  214. void    ecb1_sub1(int l)
  215. {
  216. int    i,m;
  217. MsPat(-1);
  218. m=(TWOSCHK()==-2)?15:7;
  219. //if ( sdid<l ){
  220. //    for(i=SCSI_ID;i<=m;i++)
  221. //        SCSI_ID=AutoSreachJX(i,-1);
  222. //} else {
  223. //    for(i=SCSI_ID;i>=0;i--)
  224. //        SCSI_ID=AutoSreachJX(i,-1);
  225. //}
  226. MsPat(1);
  227. //sdid=l;
  228. SCSI_ID=l;
  229. Env_AllDraw();
  230. }
  231. /*******************************************************
  232.         表示
  233. *******************************************************/
  234. void    Env_AllDraw()
  235. {
  236. int    ssp;
  237. #define    GP_ON(x,y)    GGSP16_ON_S(TADDS(x, y),MAP[x+ y*32],MAP[x+1+ y*32])
  238. #define    GP_OF(x,y)    GGSP16_OF_S(TADDS(x, y),MAP[x+ y*32],MAP[x+1+ y*32])
  239. ssp=_iocs_b_super(0);
  240. //--- アスペクト
  241. if ( AspMode==0 ){        // 「画像」の 0;(2:3) 1;(1:1)
  242.     GP_ON(22, 1);
  243.     GP_OF(24, 1);
  244. } else {
  245.     GP_OF(22, 1);
  246.     GP_ON(24, 1);
  247. }
  248. //--- 
  249. if ( PreViewS==0 ){        // 0;画質。1;速度
  250.     GP_ON(22, 2);
  251.     GP_OF(24, 2);
  252. } else {
  253.     GP_OF(22, 2);
  254.     GP_ON(24, 2);
  255. }
  256. //--- 
  257. if ( ScanSpeed==0 ){        // 0;遅い。1;速い
  258.     GP_ON(22, 3);
  259.     GP_OF(24, 3);
  260. } else {
  261.     GP_OF(22, 3);
  262.     GP_ON(24, 3);
  263. }
  264. //---
  265. if ( JpegedUseMode==0 ){    // Jpeged
  266.     GP_ON(22, 4);
  267.     GP_OF(24, 4);
  268. } else {
  269.     GP_OF(22, 4);
  270.     GP_ON(24, 4);
  271. }
  272. //--
  273. if ( C64halfMode==0 ){        // 64k color  0;中間処理あり 1;なし
  274.     GP_ON(22, 5);
  275.     GP_OF(24, 5);
  276. } else {
  277.     GP_OF(22, 5);
  278.     GP_ON(24, 5);
  279. }
  280. //---
  281. if ( SaveFrmMode==0 ){        // 0;スキャンサイズに変更 1;手動
  282.     GP_ON(22, 6);
  283.     GP_OF(24, 6);
  284. } else {
  285.     GP_OF(22, 6);
  286.     GP_ON(24, 6);
  287. }
  288. //--
  289. p_12_sprintf(22*16+2,9*16+2,"%3d",SCSI_ID);
  290. if ( ssp>=0 )
  291.     _iocs_b_super(ssp);
  292. }
  293.